Embedded systems are computer systems that are usually designed for a specific task or application in which the operating system (OS) is “embedded” within a device. Many devices with embedded systems, once powered up, are expected to run for long periods of time, even years, without error. Example devices using embedded systems include modems, routers, cable set-top boxes, traffic light control systems, cellular telephones or remote base stations, remote CMTSs, and the like. When these example devices are powered up, they run as designed and without much human intervention. Many of these device employ real-time operating systems (RTOSs) to ensure reliable operation and error event handling, i.e., they are fault tolerant and may be used in critical applications, such as in medical devices, or in aircraft and guidance systems.
In contrast, a general purpose computer, such as a personal computer (PC), is not designed for a specific task. When a general purpose computer is powered up it generally must be “told” what to do, i.e., a second application is usually launched that tells the general purpose computer how it is to operate. Thus, general purpose computer must be designed to handle a wide variety of tasks and must be scalable, i.e., it must be able to take on additional memory, if needed, or provide hardware expansion slots to accommodate the variety of tasks. Embedded systems, on the other hand, may be optimized for the task at hand, thereby reducing unit manufacturing costs. As such, embedded systems may have limited memory, or be tied to a particular operating system, set of hardware interfaces, or industry standards, and may not have the flexibility to run a variety of software applications.